<?php
App::uses('AppController', 'Controller');



class ClientesController extends AppController {
    public function beforeFilter()
    {
        parent::beforeFilter();
        $this->Auth->allow();
    }
    
    function index(){
        $this->loadModel('User');
            $this->loadModel('Cliente');
            $this->loadModel('Telefono');
            $this->loadModel('Correo');
            $this->loadModel('Estado');
            $this->loadModel('Ciudad');
            $todos = $this->Cliente->regresaTodos();
            for($i=0;$i<count($todos); $i++)
                $todos[$i]['telefonos']=$this->Telefono->regresaTelefonosC($todos[$i]['id']);
            for($i=0;$i<count($todos); $i++)
                $todos[$i]['correos']=$this->Correo->regresaCorreosC($todos[$i]['id']);
            $estados = $this->Estado->regresaTodos();
            for($i=0;$i<count($estados); $i++)
                $estados[$i]['ciudades']=$this->Ciudad->regresaTodos($estados[$i]['id']);
            $this->set('datos',array('todos'=>$todos,'estados'=>$estados));
            //$this->redirect(array('controller'=>'Sesion','action' => 'ingresar'));
    }
    function agregarCliente(){
        $this->loadModel('Cliente');
        $this->loadModel('Telefono');
        $this->loadModel('Correo');
        $datos = new Object();
        $datos->id_tienda = 1;
        $datos->fecha_alta = $_POST['fecha_alta'];
        $datos->persona = $_POST['persona'];
        $datos->titulo = $_POST['titulo'];
        $datos->distribuidor = $_POST['distribuidor'];
        $datos->nombre = $_POST['nombre'];
        $datos->nombre_comercial = $_POST['nombre_comercial'];
        $datos->apellidos = $_POST['apellidos'];
        $datos->representante = $_POST['representante'];
        $datos->razon_social = $_POST['razon_social'];
        $datos->rfc = $_POST['rfc'];
        $datos->calle_num = $_POST['calle_num'];
        $datos->colonia = $_POST['colonia'];
        $datos->cp = $_POST['cp'];
        $datos->ciudad = $_POST['ciudad'];
        $datos->estado = $_POST['estado'];
        $datos->observaciones = $_POST['observaciones'];
        $datos->paqueteria = $_POST['paqueteria'];
        $datos->clave = $_POST['clave'];
        $this->preparaDatos($datos);
        $datos->clave = trim(strtolower($datos->clave));
        $telefonos = json_decode($_POST['telefonos']);
        $correos = json_decode($_POST['correos']);
        $datos->telefonos = array();
        $datos->correos = array();
        foreach ($telefonos as $tel){
            $telefono = array();
            $telefono['telefono']= trim($tel[0]);
            $telefono['extension']= trim(strtolower($tel[1]));
            $telefono['empresa']= trim(strtolower($tel[2]));
            $telefono['id_cliente']= 0;
            $telefono['id_prove']= 0;
            array_push($datos->telefonos,$telefono);
        }
        
        foreach ($correos as $cor){
            $correo = array();
            $correo['correo']=trim($cor[0]);
            $correo['id_cliente']=0;
            $correo['id_prove']= 0;
            array_push($datos->correos,$correo);
        }
        if($this->Cliente->save($datos)){
            $datos->id=$this->Cliente->ultimoId();
            for($i =0;$i<count($datos->telefonos);$i++)
                $datos->telefonos[$i]['id_cliente']=$datos->id;
            for($i =0;$i<count($datos->correos);$i++)
                $datos->correos[$i]['id_cliente']=$datos->id;
            if(count($datos->telefonos)>0)
                $this->Telefono->saveMany($datos->telefonos);
            if(count($datos->correos)>0)
                $this->Correo->saveMany($datos->correos);  
        }
        else{
            $datos = null;
        }
        $this->set(array('datos' => $datos,'_serialize' => 'datos'));
        $this->viewClass = 'Json';
    }
    function modificarCliente(){
        $this->loadModel('Cliente');
        $this->loadModel('Telefono');
        $this->loadModel('Correo');
        $datos = new Object();
        $datos->id = $_POST['id'];
        $datos->fecha_alta = $_POST['fecha_alta'];
        $datos->persona = $_POST['persona'];
        $datos->titulo = $_POST['titulo'];
        $datos->distribuidor = $_POST['distribuidor'];
        $datos->nombre = $_POST['nombre'];
        $datos->nombre_comercial = $_POST['nombre_comercial'];
        $datos->apellidos = $_POST['apellidos'];
        $datos->representante = $_POST['representante'];
        $datos->razon_social = $_POST['razon_social'];
        $datos->rfc = $_POST['rfc'];
        $datos->calle_num = $_POST['calle_num'];
        $datos->colonia = $_POST['colonia'];
        $datos->cp = $_POST['cp'];
        $datos->ciudad = $_POST['ciudad'];
        $datos->estado = $_POST['estado'];
        $datos->observaciones = $_POST['observaciones'];
        $datos->paqueteria = $_POST['paqueteria'];
        $this->Telefono->deleteAll(array(
            'id_cliente' => $datos->id ),false);
        $this->Correo->deleteAll(array(
            'id_cliente' => $datos->id ),false);
        $this->preparaDatos($datos);
        $telefonos = json_decode($_POST['telefonos']);
        $correos = json_decode($_POST['correos']);
        $datos->telefonos = array();
        $datos->correos = array();
        foreach ($telefonos as $tel){
            $telefono = array();
            $telefono['telefono']= trim($tel[0]);
            $telefono['extension']= trim(strtolower($tel[1]));
            $telefono['empresa']= trim(strtolower($tel[2]));
            $telefono['id_cliente']= 0;
            $telefono['id_prove']= 0;
            array_push($datos->telefonos,$telefono);
        }
        foreach ($correos as $cor){
            $correo = array();
            $correo['correo']=trim($cor[0]);
            $correo['id_cliente']=0;
            $correo['id_prove']= 0;
            array_push($datos->correos,$correo);
        }
        if($this->Cliente->save($datos)){
            for($i =0;$i<count($datos->telefonos);$i++)
                $datos->telefonos[$i]['id_cliente']=$datos->id;
            for($i =0;$i<count($datos->correos);$i++)
                $datos->correos[$i]['id_cliente']=$datos->id;
            if(count($datos->telefonos)>0)
                $this->Telefono->saveMany($datos->telefonos);
            if(count($datos->correos)>0)
                $this->Correo->saveMany($datos->correos);  
        }
        else{
            $datos = null;
        }
        $this->set(array('datos' => $datos,'_serialize' => 'datos'));
        $this->viewClass = 'Json';
    }
    function eliminarCliente(){
        $this->loadModel('Cliente');
        $this->loadModel('Telefono');
        $this->loadModel('Correo');
        $datos = new Object();
        $datos->id = $_POST['id'];
        $this->Telefono->deleteAll(array(
            'id_cliente' => $datos->id ),false);
        $this->Correo->deleteAll(array(
            'id_cliente' => $datos->id ),false);
        if($this->Cliente->delete($datos->id,false))
            $datos->eliminado=true;
        else
            $datos->eliminado=false;
        $this->set(array('datos' => $datos, '_serialize' => 'datos'));
        $this->viewClass = 'Json';
    }
    function consultaCliente(){
        $this->loadModel('Cliente');
        $cliente = $this->Cliente->regresaCliente($_POST['id']);
        $this->set(array('cliente' => $cliente, '_serialize' => 'cliente'));
        $this->viewClass = 'Json'; 
    }
    function obtenFecha(){
        $fecha = date('Y-m-d');
        $this->set(array('fecha' => $fecha, '_serialize' => 'fecha'));
        $this->viewClass = 'Json'; 
    }
    function preparaDatos($datos){
        $datos->titulo = trim(strtolower($datos->titulo));
        $datos->nombre = trim(strtolower($datos->nombre));
        $datos->nombre_comercial = trim(strtolower($datos->nombre_comercial));
        $datos->apellidos = trim(strtolower($datos->apellidos));
        $datos->representante = trim(strtolower($datos->representante));
        $datos->razon_social = trim(strtolower($datos->razon_social));
        $datos->rfc = trim(strtolower($datos->rfc));
        $datos->calle_num = trim(strtolower($datos->calle_num));
        $datos->colonia = trim(strtolower($datos->colonia));
        $datos->observaciones = trim(strtolower($datos->observaciones));
        $datos->paqueteria = trim(strtolower($datos->paqueteria));
    }
}